/**
 * 串行化一系列数据。支持两种不同的对象
 * - 表单输入元素的数组
 * - 键/值对的散列表
 *  本函数返回串行化后的字符串
 */
function serialize(a){
    // 串行化结果的集合
    var s = [];
    // 若传入的参数是数组，假定它们是表单元素的数组
    if(a.constructor == Array){
        // 串行化表单元素
        for (var i=0;i<a.length;i++){
            s.push(a[i].name+"="+encodeURIComponent(a[i].value));
        }
    // 否则，假定这是一个键值对对象
    }else {
        for (var j in a){
            s.push(j + "=" + encodeURIComponent(a[j]));
        }
    }
    return s.join("&")
}

